import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.util.ArrayList;

/**
 * @Author:RenPu
 * @Date: 2020/2/15 16:44
 * @Version: 1.0
 * @description:
 */
public class OrderData {


    //管理员对象（DDL表的创建，修改等操作对象）
    private Admin admin;

    //连接对象（DML针对数据的，增，删，改，查的操作）
    private Connection connection;


    //创建前置方法,初始化俩个核心对象；
    @Before
    public void doBefore() throws IOException {

        //创建所需的配置对象
        Configuration configuration = HBaseConfiguration.create();

        //声明hbase的配置参数
        //hbase的集群入口是保存在，zookeeper里面的
        configuration.set(HConstants.ZOOKEEPER_QUORUM,"hadoop:2181");

        //创建连接对象
        Connection connection = ConnectionFactory.createConnection();

        //初始化admin对象
        admin=connection.getAdmin();

    }


    @Test
    public void testGetOrderTotal() throws IOException {

        Table table = connection.getTable(TableName.valueOf("t_result"));


        Result result=table.get(new Get(Bytes.toBytes("1:2018")));

        double total = Bytes.toDouble(result.getValue(Bytes.toBytes("cf1"), Bytes.toBytes("")));

        System.out.println("1号用户2018年消费的账单为："+total);



    }











    //创建后置方法，用于释放资源
    @After
    public void doAfter() throws IOException {

        //如果管理员对象不等于空，则进行释放资源
        if(admin!=null) admin.close();

        //如果连接对象不等于空，也同时进行释放资源
        if(connection!=null) connection.close();

    }
}
